﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ES.Admin
{
    using System.Linq.Expressions;

    public partial class FrmSatislar : Form
    {
        public FrmSatislar()
        {
            InitializeComponent();
        }
        private void Tazele(Expression<Func<Sale, bool>> expression = null)
        {
            var categoriList = Program.Db.Sales.AsQueryable();
            if (expression != null)
                categoriList = categoriList.Where(expression);
            dataGridView1.DataSource = categoriList.Select(d => new { Kimlik = d.Id, Müşteri = d.Customer.FullName, ÜrünAdı = d.Product.Title, Fiyat = d.Product.Price, KdvOrani = d.Product.Kdv, Durumu = GetStringState(d.SaleState) }).ToList();
        }

        private string GetStringState(short saleState)
        {
            if (saleState == 0) { return "Onay Bekliyor"; }
            if (saleState == 1) { return "Kargo için Bekliyor"; }
            if (saleState == 2) { return "Kargoda bekliyor"; }
            if (saleState == 3) { return "Kargo ulaştırıldı"; }
            if (saleState == 4) { return "Satış tamamlandı."; }
            if (saleState == 5) { return "Satıştan vazgeçildi"; }
            return "";
        }

        private void FrmSatislar_Load(object sender, EventArgs e)
        {
            Tazele();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            Tazele(d => d.Customer.FullName.Contains(textBox1.Text)
                || d.Product.Title.Contains(textBox1.Text));
        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            var id = int.Parse(dataGridView1.CurrentRow.Cells[0].Value.ToString());
            var frm = new SatisDetay { Id = id };
            frm.ShowDialog();
            Tazele();
        }
    }
}
